package top.maof.book.annotation;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import top.maof.book.type.CacheType;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

/**
 * CacheAspect 和 Cache注解配合使用
 * 注意: 当使用了这个注解,SpringBoot的其他注解可能无法生效
 * <p>
 * 已弃用,兼容性差,功能太弱,远不如SpringBoot自带的注解
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@ApiModel("缓存注解")
@Deprecated
public @interface Cache {
    @ApiModelProperty("缓存名")
    String name() default "";

    @ApiModelProperty("过期时间(小时)")
    int expire() default 2;


    TimeUnit unit() default TimeUnit.MINUTES;

    @ApiModelProperty("缓存空间名")
    String ex() default "";

    CacheType type() default CacheType.SELECT;
}
